#pragma once
#ifndef __GAME_STATE__INCLUDED__HH__
#define __GAME_STATE__INCLUDED__HH__

#include "LitPrerequisites.h"
#include "LitPointer.hpp"
#include "LitString.h"

namespace Lit
{
	class LIT_API GameState
	{
	public:
		GameState( const String &name );
		virtual ~GameState( );

		const String &getName() const;

		virtual void update( float dt );
		virtual void create();
		virtual void destroy();
		virtual void popped();
		virtual void pushed();
	protected:
		String mName;
	};

	typedef RefPtr<GameState> GameStatePtr;

	class LIT_API DevelopperState : public GameState
	{
	public:
		DevelopperState();
		virtual ~DevelopperState();

		virtual void update( float dt );
		virtual void create();
		virtual void destroy();
		virtual void popped();
		virtual void pushed();
	};
};

#endif